package visitor.source;

import java.util.ArrayList;
import java.util.List;

/**
 * 对象结构类 -- 需要不同元素在不同访问者下的对比
 *
 * 提供一个高层接口以允许访问者访问它的元素
 *
 *
 * @author cheng:
 * @date 2019/4/27 13:14
 */
public class ObjectStructure {
    private List<Element> elements = new ArrayList<>();

    public void attach(Element element){
        elements.add(element);
    }

    public void detach(Element element){
        elements.remove(element);
    }

    public void accept(Visitor visitor){
        for (Element element: elements) {
            element.accept(visitor);
        }
    }
}
